var goToUrl;
var updateHidden;
var fncAfterUpdate;
var A1;
var strLastIdUnidad;
var lastMode;
var fncSearchByUsmi;
var fncSearchByClue;
var setUserAddFormByUsmiClue;

var updateControl;
var setCboEntidades;
var showUserData;
var clearAddUsr;
var userEdit;
var userDataUpdate;
var userEditInit;

var appLoad = function()
	{       updateAndValAccount = function()
		{	try{
			var intUsmi = $('cboUsmiNameList').options[$('cboUsmiNameList').selectedIndex].value;
			var intDelegacion = $('cboEntidades').options[$('cboEntidades').selectedIndex].value;
			var intPerfil = $('cboPerfil').options[$('cboPerfil').selectedIndex].value;
			var strSector = $('cboSector').options[$('cboSector').selectedIndex].value;
			var strResponsable = $F('txtNombre');
			var strUsuario = $F('txtUsuario');
			var strPassword = $F('txtClave');
                        var intPral = $F('txtIdPrincipal');
                        var check = $F('chkActivo');

			var jsonVars = {cboUsmiNameList: intUsmi, txtNombre: strResponsable, cboPerfil: intPerfil, txtUsuario: strUsuario, txtClave: strPassword, cboSector: strSector, cboDelegacion: intDelegacion, txtIdPrincipal: intPral, chkActivo: check};

			new Ajax.Request('update_usuario.php',	{
													method: 'post',
													parameters: jsonVars,
													onComplete: function()
													{
													//
														//alert('Datos trasmitidos!');
														//showAccount
													},
													onSuccess: function(transport)
													{
														var jsonResponse = {};
														jsonResponse = transport.responseText.evalJSON();

														//alert(transport.responseText);
														//alert('onSuccess!');

														switch(jsonResponse.status)
														{
															case 0:
                                                                                                                            alert('No fue posible modificar la cuenta de: ' + strUsuario + '\n Error: ' + jsonResponse.descripcion);
															break;
															case 1:
                                                                                                                            alert('La cuenta se ha modificado');
															break;
														}
													}
												}
											);
				}catch(err){
			//
				alert('Request: ' + err);
			}
		}

		saveAndValAccount = function()
		{	try{
			var intUsmi = $('cboUsmiNameList').options[$('cboUsmiNameList').selectedIndex].value;
			var strUsmi = $('cboUsmiNameList').options[$('cboUsmiNameList').selectedIndex].text;
			var intPerfil = $('cboPerfiles').options[$('cboPerfiles').selectedIndex].value;
			var strSector = $('cboSector').options[$('cboSector').selectedIndex].value;
			var strResponsable = $F('txtResponsable');
			var strUsuario = $F('txtUsr');
			var strPassword = $F('txtPassword');
			
			var jsonVars = {idUnidad: intUsmi, strResponsable: strResponsable, perfil: intPerfil, usuario: strUsuario, clave: strPassword, sector: strSector};
			
			new Ajax.Request('saveAccount.php',	{
													method: 'post',
													parameters: jsonVars,
													onComplete: function()
													{
													//
														//alert('Datos trasmitidos!');
														//showAccount
													},
													onSuccess: function(transport)
													{
														var jsonResponse = {};
														jsonResponse = transport.responseText.evalJSON();

														//alert(transport.responseText);
														//alert('onSuccess!');
														
														switch(jsonResponse.status)
														{
															case 0:
															//
															alert('No fue posible crear la cuenta: ' + strUsuario + '\n Error: ' + jsonResponse.descripcion);
																break;
															case 1:
															//
															alert('La siguente cuenta se ha creado y asignado a ' + strUsmi
																  + ' de forma exitosa.\r\n\r\n' + 
																  'usuario: ' + strUsuario + 
																  '\n\rclave: ' + strPassword);
																break;
														}	
													}
												}
											);
				}catch(err){
			//
				alert('Request: ' + err);
			}
		}
		
		
	// Rutina metodo onload
		newAccountShow = function()
		{
		//
			try{
					var intUsmi = $('cboUsmiNameList').options[$('cboUsmiNameList').selectedIndex].value;
					var intSector = $('cboSector').options[$('cboSector').selectedIndex].value;
					var jsonVars = {idUnidad: intUsmi, idSector: intSector};
					//alert(intUsmi);
						new Ajax.Request('showAccount.php',	{
												method: 'post',
												parameters: jsonVars,
												onComplete: function()
												{
												//
													//alert('Datos trasmitidos!');
													//showAccount
												},
												onSuccess: function(transport)
												{
													//alert(transport.responseText);
												
													var jsonResponse = {};
													jsonResponse = transport.responseText.evalJSON();
													
													$('txtUsr').value = jsonResponse.usuario;
													$('txtPassword').value = jsonResponse.clave;

												}
											}
										);
			
			}catch(err){
			//
				alert('Request: ' + err);
			}
		}
						
		goToUrl = function(strUrl)
		{
		// Redirecciona la pagina actual a la URL indicada
			window.location = strUrl;
		}
		
		userDataUpdate = function(jsonParameters)
		{
		//
		var bolConfirma = confirm('Desea confirmar la actualizaci�n de este usuario?');
			if(bolConfirma)
			{
			var strActivo = !!$('activo').checked;

				if(strActivo)
				{
				//
					strActivo = '1';
				} else {
				//
					strActivo = '0';
				}
				
			var jsonNewParameters =	{
										id_principal: $F('id_principal'),
										nPerfil: $F('nPerfil'),
										id_delegacion: $F('id_delegacion'),
										id_sector: $F('id_sector'),
										id_unidad: $F('id_unidad'),
										nombre: $F('nombre'),
										usuario: $F('usuario'),
										clave: $F('clave'),
										clave2: $F('clave2'),
										activo: strActivo
									}
									
			new Ajax.Request('m_edit_usuarioss.php',	
							 {
								method: 'post',
								parameters: jsonNewParameters,
								onComplete: function(transport)
								{
								var jsonResponse = transport.responseText.evalJSON();
									if(jsonResponse.status)
									{
									//
									var strResponse = jsonResponse.description;
										alert(strResponse);
										//m_usuarios.php
										goToUrl('m_usuarios.php');
									} else {
									//
									
									}
								},
								onSuccess: function(transport)
								{
								//var jsonResponse = {};
								//	jsonResponse = transport.responseText.evalJSON();
									//alert('Success: ');
									//alert(transport.responseText);
									//alert('Los datos fueron guardados correctamente!');

								}
							}
						);
			}
		
		}
		
		userEditInit = function()
		{
		//
			//updateControl('divPerfil', 'cboPerfilesFill.php', {});
			//updateControl('divSector', 'cboSectoresFill.php', {});
			//updateControl('divDelegacion', 'cboDelegacionesFill.php', {});
			//updateControl('divUsmiNameList', 'cboUsmiNameFill.php', {intSector: 1, intEntidad: 1});
		
		}
		
		userEdit = function(jsonParameter)
		{
		//
		var bolConfirma = confirm('Desea editar la cuenta de usuario de ' + jsonParameter.responsable + '?');
		
			if(bolConfirma)
			{
			//
				//alert('Editar usuario id_principal: ' + jsonParameter.idPrincipal);
				window.location = 'm_edit_usuarios.php?idToEdit=' + jsonParameter.idPrincipal;
			} else {
			//
				//alert('Cancelar la edicion');
			}
		
		}
		
		showUserData = function(strDivControl, strUrl, jsonParameters)
		{
		//
		
			try{
			//
			var strShowFrom = jsonParameters.strSource;
			var varSourceData;
				
				switch(strShowFrom)
				{
					case 'usmi':
						varSourceData = jsonParameters.idUnidad;
						//alert('Seleccionaste USMI: ' + varSourceData);
							break;
					case 'clue':
						varSourceData = jsonParameters.clue;
						//alert('Seleccionaste CLUE: ' + varSourceData);
							break;
					case 'usuario':
						varSourceData = jsonParameters.usuario;
						//alert('Seleccionaste CLUE: ' + varSourceData);
							break;
				}

				updateControl(strDivControl, strUrl, {data: varSourceData, source: strShowFrom});
				
			}catch(err){
			//
				alert(	'Se presento un error al refrescar ' + strDivControl + 
						'\n\r' + err);
			}

		}

                showListUser = function(strDivControl, strUrl, jsonParameters)
		{
		//

			try{
			//
			var nUSMIS = jsonParameters.nUSMIS;
                        var nEstado = jsonParameters.nEstado;

//alert(nUSMIS);
			updateControl(strDivControl, strUrl, {nUSMIS: nUSMIS, nEstado: nEstado});

			}catch(err){
			//
				alert(	'Se presento un error al listar, intentelo nuevamente ' + strDivControl + '\n\r' + err);
			}

		}

		clearAddUsr = function()
		{
		//
			$('divEntidades').update('');
			$('divUsmiNameList').update('');
			$('divClue').update('');
			$('divResults').update('');
		}
	
		updateControl = function(strDivControl, strUrl, jsonParameters)
		{
		//
		
			try{
			//
			var strMetodo = jsonParameters.strMetodo;
			
				if(strMetodo == 'clue')
				{
				//
					$('divSector').update('<label class="Texto_gral">Proporcione una CLUE:&nbsp;&nbsp;</label><input type="text" name="txtClue" style="width:100px" id="txtClue" class= datos/>');
					$('divEntidades').update('<br><input type="button" class="Texto_gral" name="btnClue" id="btnClue" style="width:100px" value="Buscar CLUE" onclick="javascript: showUserData(\'divResults\', \'usrResults.php\', {strSource: \'clue\', clue: $F(\'txtClue\')});" />');
					
				} else if(strMetodo == 'usuario') {
					$('divSector').update('<label class="Texto_gral">Proporcione el usuario:&nbsp;&nbsp;&nbsp;</label><input type="text" name="txtUserName" id="txtUserName" style="width:100px" />');
					
					
					
					$('divEntidades').update('<br><input type="button" name="btnUsuario" style="width:110px" id="btnUsuario" value="Buscar Usuario" class="Texto_gral" onclick="javascript: showUserData(\'divResults\', \'usrResults.php\', {strSource: \'usuario\', usuario: $F(\'txtUserName\')});" />');
					
					
				} else {
				//
				new Ajax.Updater(	strDivControl,
									strUrl,
									{
										method: 'post',
										parameters: jsonParameters,
										onLoading: function()
										{
										//
											//$('divAddUserFormSection').update('<img src="images/ajax-loader.gif" />');
										},
										onLoaded: function()
										{
										//
											//$('divAddUserFormSection').update('');
										},
										onSuccess:  function(transport)
										{
										//
											//$('divAddUserFormSection').update('NUEVO CONTENIDO SUCCES');
										},
										onComplete: function()
										{
										//
											//$('divAddUserFormSection').update('NUEVO CONTENIDO COMPLETE');
										}
									}
								);
				}
				
			}catch(err){
			//
				alert(	'Se presento un error al refrescar ' + strDivControl + 
						'\n\r' + err);
			}

		}
		
		setCboEntidades = function()
		{
		//
			divEntidades
		}
		
		updateHidden = function(txt, li)
		{
		// Actualiza el valor del campo hidden del form de alta de usuarios
			hiddenName = txt.name.replace("_","");
			id = li.id.replace("auto_","");
			txt.form[hiddenName].value = id;
		}
		
  		fncAfterUpdate = function(strText, objLi)
		{
		//	Asigna el valor elegido por el usuario
			strLastIdUnidad = objLi.id;
			//alert('id_unidad: ' + strLastIdUnidad);
			setUserAddFormByUsmiClue(strLastIdUnidad, lastMode);
		}
		
		fncSearchByUsmi = function()
		{
		// Asigna busqueda por USMI
			lastMode = 0;
			$('autocomplete').select();
			$('autocomplete').setAttribute('value', '');
			$('autocomplete').focus();
			A1 = new Ajax.Autocompleter(	"autocomplete",
											"autocomplete_choices",
											"test_server.php?type=0",
											{	
													tokens: ",",
													paramName: "q",
													minChars: 3,
													afterUpdateElement: updateHidden,
													indicator: "indicator1",
													afterUpdateElement : fncAfterUpdate
											}
										);
		}
		
		fncSearchByClue = function()
		{
		// asigna busqueda por CLUE
			lastMode = 1;
			$('autocomplete').select();
			$('autocomplete').setAttribute('value', '');
			$('autocomplete').focus();
			A1 = new Ajax.Autocompleter(	"autocomplete",
											"autocomplete_choices",
											"test_server.php?type=1",
											{	
													tokens: ",",
													paramName: "q",
													minChars: 3,
													afterUpdateElement: updateHidden,
													indicator: "indicator1",
													afterUpdateElement : fncAfterUpdate
											}
										);

		}

		setUserAddFormByUsmiClue = function(strLastIdUnidad, lastMode)
		{
		//
			//alert('id_unidad: ' + strLastIdUnidad + ', last_mode: ' + lastMode);
		var jsonVars = { strIdUnidad: strLastIdUnidad }
		var strUrl = 'setUserAddForm.php';
		new Ajax.Updater(	'divAddUserFormSection',
							strUrl,
							{
								method: 'post',
								parameters: jsonVars,
								onLoading: function()
								{
								//
									//$('divAddUserFormSection').update('<img src="images/ajax-loader.gif" />');
								},
								onLoaded: function()
								{
								//
									//$('divAddUserFormSection').update('');
								},
								onSuccess:  function(transport)
								{
								//
									//$('divAddUserFormSection').update('NUEVO CONTENIDO SUCCES');
								},
								onComplete: function()
								{
								//
									//$('divAddUserFormSection').update('NUEVO CONTENIDO COMPLETE');
								}
							}
						);
		}
	}
	
var appUnload = function()
	{
	// Rutina metodo unload

	}

Event.observe(window, 'load', appLoad);
Event.observe(window, 'unload', appUnload);	